授予RAM用户实例的开发权限

本文为您介绍主账号如何使用简单权限模型和专家权限模型,授予RAM用户实例的开发权限。

背景信息

系统默认设置购买实例的主账号为超级管理员Superuser。Superuser拥有该实例的所有权限,例如创建数据库、删除数据库、创建角色以及为角色授权等。

RAM用户的权限说明如下:

  • RAM用户需要被主账号授权后才能访问实例。RAM用户也可以被授权为Superuser。

  • 即使RAM用户拥有实例的购买权限,也必须经过主账号授予实例的开发权限后,才能在Hologres实例中进行数据开发。

RAM权限与实例的开发权限的权限控制不同,详情请参见授予RAM用户权限

使用简单权限模型为RAM用户授权(推荐)

您可以在Hologres管理控制台使用可视化方式为RAM用户授权。具体操作如下:

  1. 新建用户。

    1. 使用主账号登录阿里云官网

    2. 登录Hologres管理控制台,单击目标实例名称,进入实例详情页。

    3. 在实例详情页的左侧导航栏,单击账号管理,默认进入用户管理页面。

    4. 用户管理页面,单击右上角新增用户

    5. 配置新增用户弹框的各项参数。新增用户

      参数

      描述

      选择组织成员

      选择需要授权的RAM用户,将其创建至实例中。

      选择成员角色

      • 实例超级管理员(Superuser):拥有实例内所有操作的权限。

      • 普通用户:默认无实例的操作权限。

        您需要授予RAM用户具体的操作权限后,RAM用户才能连接Hologres实例并使用。

    6. 单击确认

  2. 可选:为用户授权。

    如果新增的用户是普通用户,则需要执行该步骤。具体操作如下:

    1. 用户管理页面,单击左侧导航栏DB授权DB授权

      如果DB管理页面没有数据库,您需要执行如下操作:

      1. 单击新增数据库

      2. 配置实例名称,输入数据库名称,并选择简单权限策略SPM

    2. 进入DB授权页面,单击操作列的用户授权 > 新增授权

    3. 配置新增授权的各项参数。新增授权

      参数

      描述

      用户

      需要授权的RAM用户。

      用户组

      • Admin:可以访问或操作数据库的所有对象,以及管理数据库的用户组。

      • Developer:可以使用DDL语句创建、删除或修改数据库的对象,以及读写数据库对象中的数据。

      • Writer:读写数据库对象中的数据。

      • Viewer:拥有所有数据库对象的只读权限。

    4. 单击确认

    简单权限模型也支持使用SQL语句为RAM用户授权,详情请参见简单权限模型的使用

使用专家权限模型为RAM用户授权

使用专家权限模型为RAM用户授权的操作步骤如下:

  1. 新建用户。

    创建RAM用户至Hologres实例。示例语句如下。

    CREATE USER "p4_账号ID"; //ID为阿里云RAM用户的UID。
    CREATE USER "p4_账号ID" SUPERUSER; //授予RAM用户Superuser权限。
  2. 为用户授权。

    RAM用户需要被授予相应的权限后,才能访问权限范围内的对象。示例授权语句如下。

    GRANT SELECT ON TABLE TABLENAME TO "账号ID"; //授予RAM用户表的查看权限。
    GRANT SELECT,INSERT,UPDATE ON ALL TABLES IN SCHEMA PUBLIC TO "p4_账号ID"; //授予RAM用户所有表的新增、修改和查看权限。
    说明

    只有Superuser和表Owner才可以删除表。

    专家权限模型的更多授权操作请参见专家权限模型

RAM用户使用Hologres

完成授权的RAM用户可以在Psql客户端连接Hologres实例并使用。详情请参见PSQL客户端

示例语句如下。

PGUSER=<AccessID> PGPASSWORD=<AccessKey> psql -p <Port> -h <Endpoint> -d <Database>

查看RAM用户的权限

您可以通过如下方式查看RAM用户的权限:

  • 使用管理控制台查看RAM用户的权限。

    1. 进入Hologres管理控制台的实例详情页。

    2. 在实例详情页左侧导航栏,单击账号管理

    3. 用户管理页面查看RAM用户的权限。

    如果您的数据库已经开启简单权限模型,您可以在DB管理页面,单击目标数据库的用户授权,查看RAM用户已加入的用户组。

  • 使用SQL语句查看RAM用户的权限。

    连接开发工具至Hologres实例后,您可以使用如下SQL语句查看RAM用户的权限。

    SELECT * FROM pg_roles WHERE rolname = 'p4_ID'; //查看某个成员拥有的角色。
    SELECT rolname FROM pg_roles;
    SELECT user_display_name(rolname) FROM pg_roles;